package org.jeecg.modules.product.risk.vo;

import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import kotlin.jvm.Transient;
import lombok.Data;
import org.jeecg.modules.product.risk.entity.TbBaseCheckPlanApprovalRecord;
import org.jeecg.modules.product.risk.entity.TbBaseCheckRecord;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelEntity;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import org.jeecg.common.aspect.annotation.Dict;


/**
 * @Description: 检查计划
 * @Author: jeecg-boot
 * @Date:   2024-05-17
 * @Version: V1.0
 */
@Data
@Schema(description="检查计划")
public class TbBaseCheckPlanPage {

	/**主键*/
	@Schema(description = "主键")
    private String id;
	/**创建人*/
	@Schema(description = "创建人")
    private String createBy;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@Schema(description = "创建日期")
    private Date createTime;
	/**更新人*/
	@Schema(description = "更新人")
    private String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@Schema(description = "更新日期")
    private Date updateTime;
	/**所属部门*/
	@Schema(description = "所属部门")
    private String sysOrgCode;
	/**专项任务id*/
	@Excel(name = "专项任务id", width = 15)
	@Schema(description = "专项任务id")
    private String taskId;
	/**检查名称*/
	@Excel(name = "检查名称", width = 15)
	@Schema(description = "检查名称")
    private String name;
	/**检查类型*/
	@Excel(name = "检查类型", width = 15, dicCode = "baseCheckType")
    @Dict(dicCode = "baseCheckType")
	@Schema(description = "检查类型")
    private String inspectType;
	/**涉及危险源*/
	@Excel(name = "涉及危险源", width = 15)
	@Schema(description = "涉及危险源")
    private String hazardName;
	/**任务开始日期*/
	@Excel(name = "任务开始日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	@Schema(description = "任务开始日期")
    private Date taskStartTime;
	/**任务结束日期*/
	@Excel(name = "任务结束日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	@Schema(description = "任务结束日期")
    private Date taskEndTime;
	@Excel(name = "登记时间", width = 15)
	@Schema(description = "登记时间")
	private String registrationTime;
	/**审批状态*/
	@Excel(name = "审批状态", width = 15, dicCode = "baseCheckBpmType")
    @Dict(dicCode = "baseCheckBpmType")
	@Schema(description = "审批状态")
    private String bpmStatus;
	/**审批人*/
	@Excel(name = "审批人", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "username")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
	@Schema(description = "审批人")
    private String approver;
	/**检查来源*/
	@Excel(name = "检查来源", width = 15)
	@Schema(description = "检查来源")
    private String source;
	/**检查级别*/
	@Excel(name = "检查级别", width = 15, dicCode = "inspectionLevel")
    @Dict(dicCode = "inspectionLevel")
	@Schema(description = "检查级别")
    private String inspectionLevel;
	/**检查人*/
	@Excel(name = "检查人", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "username")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
	@Schema(description = "检查人")
    private String examiner;
	/**组织检查单位*/
	@Excel(name = "组织检查单位", width = 15)
	@Schema(description = "组织检查单位")
    private String inspectionUnit;
	/**被检查单位*/
	@Excel(name = "被检查单位", width = 15)
	@Schema(description = "被检查单位")
    private String jnitUnderInspection;
	/**检查种类*/
	@Excel(name = "检查种类", width = 15, dicCode = "inspectionType")
    @Dict(dicCode = "inspectionType")
	@Schema(description = "检查种类")
    private String inspectionType;
	/**是否使用检查表*/
	@Excel(name = "是否使用检查表", width = 15, dicCode = "yn")
    @Dict(dicCode = "yn")
	@Schema(description = "是否使用检查表")
    private String isNot;
	/**说明*/
	@Excel(name = "说明", width = 15)
	@Schema(description = "说明")
    private String remark;
	/**附件*/
	@Excel(name = "附件", width = 15)
	@Schema(description = "附件")
    private String attachments;

	/**删除标识*/
	@Excel(name = "删除标识", width = 15, dicCode = "yn")
	@Dict(dicCode = "yn")
	@Schema(description = "删除标识")
	private String deleted;
	/**任务状态*/
	@Excel(name = "任务状态", width = 15, dicCode = "task_status")
	@Dict(dicCode = "task_status")
	@Schema(description = "任务状态")
	private String status;

	@ExcelCollection(name="检查情况记录")
	@Schema(description = "检查情况记录")
	private List<TbBaseCheckRecord> tbBaseCheckRecordList;
	@ExcelCollection(name="审批记录")
	@Schema(description = "审批记录")
	private List<TbBaseCheckPlanApprovalRecord> tbBaseCheckPlanApprovalRecordList;

	/**处理意见*/
	@TableField(exist = false)
	private String handlingSuggestion;

}
